package org.example.casemodule.entity;

import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;

import java.lang.Long;
import java.util.Date;
import java.lang.Object;
import java.lang.String;
import java.lang.Integer;

/**
 * 案件表 实体类。
 *
 * @author mybatis-flex-helper automatic generation
 * @since 1.0
 */
@Table(value = "legal_case",dataSource = "caseDS")
public class LegalCaseEntity {

    /**
     * 案件ID
     */
    @Id(keyType = KeyType.Auto)
    private Long id;

    /**
     * 案件编号
     */
    @Column(value = "case_no")
    private String caseNo;

    /**
     * 申请人ID
     */
    @Column(value = "user_id")
    private Long userId;

    /**
     * 承办律师ID
     */
    @Column(value = "lawyer_id")
    private Long lawyerId;

    /**
     * 案件标题
     */
    @Column(value = "title")
    private String title;

    /**
     * 案件类型
     */
    @Column(value = "type")
    private Object type;

    /**
     * 案件地域
     */
    @Column(value = "region")
    private String region;

    /**
     * 案情描述
     */
    @Column(value = "description")
    private String description;

    /**
     * 案件状态
     */
    @Column(value = "status")
    private Object status;

    /**
     * 当前处理阶段
     */
    @Column(value = "current_stage")
    private String currentStage;

    /**
     * 进度百分比
     */
    @Column(value = "progress_percent")
    private Integer progressPercent;

    /**
     * 申请时间
     */
    @Column(value = "apply_time")
    private Date applyTime;

    /**
     * 分配时间
     */
    @Column(value = "assign_time")
    private Date assignTime;

    /**
     * 律师受理时间
     */
    @Column(value = "accept_time")
    private Date acceptTime;

    /**
     * 完成时间
     */
    @Column(value = "complete_time")
    private Date completeTime;

    /**
     * 关闭原因
     */
    @Column(value = "close_reason")
    private String closeReason;

    /**
     * 风险等级
     */
    @Column(value = "risk_level")
    private Object riskLevel;

    /**
     * 最近分析时间
     */
    @Column(value = "last_analyzed_time")
    private Date lastAnalyzedTime;


    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getCaseNo() {
        return caseNo;
    }

    public void setCaseNo(String caseNo) {
        this.caseNo = caseNo;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getLawyerId() {
        return lawyerId;
    }

    public void setLawyerId(Long lawyerId) {
        this.lawyerId = lawyerId;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public Object getType() {
        return type;
    }

    public void setType(Object type) {
        this.type = type;
    }

    public String getRegion() {
        return region;
    }

    public void setRegion(String region) {
        this.region = region;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Object getStatus() {
        return status;
    }

    public void setStatus(Object status) {
        this.status = status;
    }

    public String getCurrentStage() {
        return currentStage;
    }

    public void setCurrentStage(String currentStage) {
        this.currentStage = currentStage;
    }

    public Integer getProgressPercent() {
        return progressPercent;
    }

    public void setProgressPercent(Integer progressPercent) {
        this.progressPercent = progressPercent;
    }

    public Date getApplyTime() {
        return applyTime;
    }

    public void setApplyTime(Date applyTime) {
        this.applyTime = applyTime;
    }

    public Date getAssignTime() {
        return assignTime;
    }

    public void setAssignTime(Date assignTime) {
        this.assignTime = assignTime;
    }

    public Date getAcceptTime() {
        return acceptTime;
    }

    public void setAcceptTime(Date acceptTime) {
        this.acceptTime = acceptTime;
    }

    public Date getCompleteTime() {
        return completeTime;
    }

    public void setCompleteTime(Date completeTime) {
        this.completeTime = completeTime;
    }

    public String getCloseReason() {
        return closeReason;
    }

    public void setCloseReason(String closeReason) {
        this.closeReason = closeReason;
    }

    public Object getRiskLevel() {
        return riskLevel;
    }

    public void setRiskLevel(Object riskLevel) {
        this.riskLevel = riskLevel;
    }

    public Date getLastAnalyzedTime() {
        return lastAnalyzedTime;
    }

    public void setLastAnalyzedTime(Date lastAnalyzedTime) {
        this.lastAnalyzedTime = lastAnalyzedTime;
    }
}
